package com.yami.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yami.shop.bean.dto.FriendSaveDTO;
import com.yami.shop.bean.model.Friend;
import com.yami.shop.bean.vo.MyFriendVo;

import java.util.List;
import java.util.Map;

public interface FriendService extends IService<Friend> {


    /**
     * 关注指定人
     *
     * @param saveDTO
     */
    void follow(FriendSaveDTO saveDTO);


    /**
     * 我的好友列表
     * @param userId
     * @return
     */
    List<MyFriendVo> firendList(String userId,String userName);

    /**
     * 新增关注列表
     * @param userID
     * @return
     */
    List<MyFriendVo>newConcernsList(String userID);


    /**
     * 关注和粉丝数量
     * @param usId
     * @return
     */
    Map<String, Object> selectFansFollowNum(String usId);


    int getRelation(String usId, String current);

    Map<String, Object> gethome(String usId ,String currentId);

    IPage<MyFriendVo> fansPage(Page page,  String usId,String currentId);
    IPage<MyFriendVo> fansPageSearch(Page page,  String currentId,String userName,String groupId);
    IPage<MyFriendVo> followPage(Page page,  String usId,String currentId);
    List<MyFriendVo> followPageNoPage(String currentId);

    IPage<MyFriendVo> myFriendListPage(Page page,String usId,String currentId,String userName);
    IPage<MyFriendVo> searchUserListPage(Page page,  String currentId,String userName);
    IPage<MyFriendVo> recommendList(Page page, String userName, String currentId);
    void followRecommend(List<MyFriendVo> records,String currentId);
    //注销删除
    void removeAllFirend(String userId);
    //获取私聊权限
    String getPrivacyTypeValue(Integer relation, String privacyType);
    //用户和这些用户的关系
    List<MyFriendVo> getRelations(List<String> userIds,String currentId);

    void removeEachOtherFan(String userId, String usId);

}
